Poniżej jest kod, który chcę użyć. Mam problem z pierwszym linkiem, który nie zmienia się na odnośnik.
<?
// bbcode
function bbcode_autolink($str){
$lnk=$str[3];
if(strlen($lnk)>30){
if(substr($lnk,0,3)=='www'){$l=9;}else{$l=5;}
$lnk=substr($lnk,0,$l).'(...)'.substr($lnk,strlen($lnk)-8);}
return '
<a href="'.$str[2].'://'.$str[3].'" target="_blank">'.$str[2].'://'.$lnk.'
</a>';}
Function bbcode($str){
// usun zbedne
$str=htmlspecialchars(trim($str));
// Automatyczne tworzenie linków
$str = preg_replace_callback("#([\n ])([a-z]+?)://([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)#si", "bbcode_autolink", $str);
$str = preg_replace("#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)?)#i", " <a href=\"http://www.\\2.\\3\\4\" target=\"_blank\">www.\\2.\\3\\4</a>", $str);
$str = preg_replace("#([\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)#i", "\\1
<a href=\"javascript:mailto:mail('\\2','\\3');\">\\2_(at)_\\3
</a>", $str);
// kolejny wiersz
$str=nl2br($str);
// wynik
return $str;}
$tresc ='http://www.google.pl
echo bbcode($tresc);
?>
podbijam.
Ten post edytował todaro 20.02.2008, 15:00:24